Code Division Multiple Access (CDMA) is a system whereby spread-spectrum communication is facilitated by modulating different signals according to different codes, transmitting the subsequently modulated signals over the same frequency spectrum, then demodulating the signals at a receiver and separating out the signals. One example of such a CDMA system is the “Third Generation Partnership Project” (3GPP) consortium sponsored wideband-CDMA standard (W-CDMA). The standard is specified by the following documents: 3GPP TS 21.101, 3GPP TS 25.211, 3GPP TS 25.212, 3GPP TS 25.213, 3GPP TS 25.214 and 3G TS 25.133. These documents are incorporated herein by reference.
As specified in the W-CDMA specifications a scrambling code is used to encode the transmitted signal. Therefore, when the encoded signal is received it is necessary for the receiver to allocate the correct code to a signal so that the signal may be descrambled. In the W-CDMA standard, the scrambling code is iteratively defined and is time dependent. Therefore, when the receiver starts up, it is necessary to determine the relative time when the scrambling code was generated and this is then used as a seed to generate the correct code so that the receiver can descramble the transmitted signal.
There are a number of known approaches for producing the correct scrambling code for decoding the received encoded signal at the receiver (also referred to as the downlink scrambling code when the signal is transmitted from a base station to user equipment). For example, it is known to provide a step-wise approach whereby the calculation of the code is iterated the number of required times to produce the required code. However, this is a computationally and time intensive operation.
It is also known to use look-up tables to determine the desired code. However, this is memory intensive.
It is desirable to determine a scrambling code in a manner which achieves a balance between storage requirements and calculation complexity.